<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。
        // 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。
        // 你可以假设除了整数 0 之外，这个整数不会以零开头。
        // 示例 1：
        // 输入：digits = [1,2,3]
        // 输出：[1,2,4]
        // 解释：输入数组表示数字 123。
        // 示例 2：
        // 输入：digits = [4,3,2,1]
        // 输出：[4,3,2,2]
        // 解释：输入数组表示数字 4321。
        // 示例 3：
        // 输入：digits = [0]
        // 输出：[1]
        var plusOne = function (digits) {
            const n = digits.length;
            for (let i = n - 1; i >= 0; --i) {
                if (digits[i] !== 9) {
                    ++digits[i];
                    for (let j = i + 1; j < n; ++j) {
                        digits[j] = 0;
                    }
                    return digits;
                }
            }

            // digits 中所有的元素均为 9
            const ans = new Array(n + 1).fill(0);
            ans[0] = 1;
            return ans;
        }
    </script>
</body>

</html>